/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica.Comandos;

import AccesoDatos.Fabricas.DAO;
import Excepciones.NoConexionException;
import Logica.Fabricas.Comando;
import Session.Session;

/**
 *Comando que controla que la session se encuentre activa
 * @author familia
 */
public class ComandoControlarSession extends Thread implements Comando<Boolean> {

    @Override
    public Boolean Ejecutar() {
        this.start();
        return true;
    }    
    @Override
    public void run() {
        while(true)
        try {
            while(true){
                
            DAO.ObtenerDAO(DAO.Opciones.socket).
                    ObtenerDAOUsuario(Session.getServidorConectado()).
                    VerificarSession();
            if(!Session.isSesion())
                break;
            }
        } catch (NoConexionException e) {
            if(!Session.VerificarServidores()){
                Session.setSesion(false);
                break;
            }
        }
    }

    @Override
    public void Detener() {
        this.stop();
    }

    @Override
    public void Pausar() {
        this.suspend();
    }

    @Override
    public void Reanudar() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean esVivo() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
}
